home *** CD-ROM | disk | FTP | other *** search
/ Robotics & Artificial Int…3 (Professional Edition) / Robotics & Artificial Intelligence Tools 2003 (Professional Edition).iso / neural network tool and application / nsinstall.exe / data1.cab / DllSys_Files / AXON / WINNERA.C < prev   
Encoding:
C/C++ Source or Header  |  2002-03-08  |  1.3 KB  |  47 lines

  1. // Dynamic link library implementation of NeuroSolutions WinnerTakeAllAxon component 
  2.  
  3. #include "NSDLL.h"
  4.  
  5. /************************************************/
  6. /* Macro to access the PE layer in matrix form */
  7.  
  8. #define data(i,j)        data[j+i*cols]
  9.  
  10. /***********************************/
  11. /* Forward activation of component */
  12.  
  13. __declspec(dllexport) void performAxon(
  14.     DLLData    *instance,    // Pointer to instance data (may be NULL)
  15.     NSFloat    *data,         // Pointer to the layer of processing elements (PEs)
  16.     int     rows,        // Number of rows of PEs in the layer
  17.     int     cols        // Number of columns of PEs in the layer
  18.     )
  19. {
  20.     register int i, length=rows*cols, winner=0;
  21.  
  22.     for (i=1; i<length; i++)
  23.         if (data[i] > data[winner])
  24.             winner = i;
  25.     for (i=0; i<length; i++)
  26.         data[i] = (NSFloat)0.0;
  27.     data[winner] = (NSFloat)1.0;
  28. }
  29.  
  30. /******************************************/
  31. /* Management of instance data (OPTIONAL) */
  32. /*
  33. __declspec(dllexport) DLLData *allocAxon(
  34.     DLLData    *oldInstance,    // Pointer to the last instance if reallocating
  35.     int     rows,        // Number of rows of PEs in the layer
  36.     int     cols        // Number of columns of PEs in the layer
  37.     )
  38. {
  39.     DLLData *instance = allocDLLInstance(oldInstance);
  40.     return instance;
  41. }
  42.  
  43. __declspec(dllexport) void freeAxon(DLLData *instance)
  44. {
  45.     freeDLLInstance(instance);
  46. }
  47. */